package models

import (
	"time"

	"gorm.io/datatypes"
	"gorm.io/gorm"
)

// MaRobotReport [...] 机器单日空货 --- 单日空货18点执行的定时任务
type MaRobotInventoryZeroSingel struct {
	ID                string         `gorm:"autoIncrement:true;primaryKey;column:id;type:int(10);not null" json:"id" json_old:"ID"`
	Date              datatypes.Date `gorm:"uniqueIndex:Date_RobotName;column:date;type:date;not null;comment:日期" json:"-" json_old:"-"`
	DateFormated      string         `gorm:"-" json:"date" json_old:"Date"`
	SalesID           string         `gorm:"column:sales_id;type:varchar(255);not null;default:'';comment:机器识别码" json:"sales_id" json_old:"SalesID"`
	RobotName         string         `gorm:"uniqueIndex:Date_RobotName;column:robot_name;type:varchar(50);not null;comment:机器名称" json:"robot_name" json_old:"RobotName"`
	ShopID            string         `gorm:"column:shop_id;type:bigint;not null;comment:商户ID" json:"shop_id" json_old:"ShopID"`
	Areas3            string         `gorm:"column:areas3;type:bigint;comment:商场ID" json:"areas3" json_old:"Areas3"`
	GoodsName1        string         `gorm:"-" json:"goods_name1" json_old:"GoodsName1"`
	GoodsID           int64          `gorm:"column:goods_id;type:bigint;not null;comment:商品ID" json:"goods_id" json_old:"GoodsID"`
	GoodsInventory    int64          `gorm:"column:goods_inventory;type:bigint;default:0;comment:截止当前18点机器商品的库存为0，记录库存节点作用" json:"goods_inventory" json_old:"GoodsInventory"`
	GoodsMaxInventory int64          `gorm:"column:goods_max_inventory;type:bigint;default:0;comment:截止当前18点机器的商品设置的允许最大库存，记录库存节点作用" json:"goods_max_inventory" json_old:"GoodsMaxInventory"`
}

// TableName get sql table name.获取数据库表名
func (m MaRobotInventoryZeroSingel) TableName() string {
	return "ma_robot_inventory_zero_singel"
}

func (m *MaRobotInventoryZeroSingel) AfterFind(tx *gorm.DB) (err error) {
	if !time.Time(m.Date).IsZero() {
		DateByte, _ := DateTime(m.Date).MarshalDate()
		m.DateFormated = string(DateByte)
	}
	return
}

// 模式自动注册
func init() {
	Models = append(Models, &MaRobotInventoryZeroSingel{})
}
